package com.gxa.weixing.pc.mapper;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

/**
 * @ClassName WorkBenchMapper
 * @Author: ws
 * @date 2022/1/10 11:20
 */
public interface WorkBenchMapper {

    /**
     * 统计当前商品的总量(在售)的方法
     * @return 商品总数
     */
    Long getGoodsTotal();

    /**
     * 统计注册用户总数的方法
     * @return 注册用户数
     */
    Long getUserTotal();

    /**
     * 统计订单总量(已付款: 出去未付款、已取消的都是已付款的)的方法
     * @return 订单总数
     */
    Long getOrderTotal();

    /**
     * 统计用户兑换的商品总量(当前兑换商品的总量)的方法
     * @return 装有商品兑换数量的集合
     */
    List<Map<String,Integer>> getExchangeGoodsCount();

    /**
     * 统计兑换订单总量的方法
     * @return 兑换订单数
     */
    Long getExchangeOrdersTotal();

    /**
     * 统计用户的总量(根据条件时间对比用户注册时间: 今日/昨日)的方法
     * @param from 开始时间
     * @param to 结束时间
     * @return 用户数
     */
    Long getUserTotalByRegTime(Timestamp from ,Timestamp to);

    /**
     * 获得指定时间段下单用户编号集合的方法(用于统计指定时间下单的用户数)
     * @param from 开始时间
     * @param to 结束时间
     * @return 装有用户编号的集合
     */
    List<Map> getUserByOrderTime(Timestamp from ,Timestamp to);

    /**
     * 获得每笔订单的支付价格(通过下单时间做条件，如果下单时间为NULL，就是全部订单)
     * @param from 开始时间
     * @param to 结束时间
     * @return 装有订单支付价格的集合
     */
    List<Map> getPayPriceByOrderTime(Timestamp from ,Timestamp to);
}
